package com.magic233.mapper;

import com.github.pagehelper.Page;
import com.magic233.entity.OrderStatistical;
import com.magic233.entity.Orders;
import com.magic233.entity.Workers;

import java.util.List;

public interface OrdersMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Orders record);

    int insertSelective(Orders record);

    Orders selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(Orders record);

    //修改工单信息 ，必须未派单（学生撤单）
    int updateByPrimaryKeySelective2(Orders record,Long uid);

    //修改工单信息 ，必须管理员已派单（维修人员申请退单）
    int updateByPrimaryKeySelective3(Orders record,Long wid);

    //修改工单信息 ，必须工人申请退单（管理员处理退单）
    int updateByPrimaryKeySelective4(Orders record);

    //修改工单信息 ，必须工人已接单（维修人员确认维修完成）
    int updateByPrimaryKeySelective5(Orders record,Long wid);

    //修改工单信息 ，必须工人已完成（用户确认维修完成）
    int updateByPrimaryKeySelective6(Orders record,Long uid);

    //修改工单信息，必须未派单（管理员撤单）
    int updateByPrimaryKeySelective7(Orders record);

    //修改工单信息 ，（工人备注）
    int updateByPrimaryKeySelective8(Orders record,Long uid);

    int updateByPrimaryKey(Orders record);

    //查询工单
    Page<Orders> selectOrders(Orders order);

    Long selectCount(Orders order);

    int mark(Long id, Long wid);

    int cancelMark(Long id,Long wid);

    List<OrderStatistical> orderStatistical(Orders order);

    List<Workers> workerStatistical();

    List<Workers> workerScore();

    Page<Orders> selectDeptOrders(Orders order, String dept);

    Page<Orders> selectOrdersWarn(Orders order);

    int systemAutoConfirm(Orders order);

    int updateOrderStatusByWorkerDisable(Orders orders);
}